package algorithm.t202112;

/**
 * @author : 李红磊
 * @version :1.0
 * @date : 2021/12/3 8:56
 * @description :2道
 * 做题极少今天，还得整毕业实习那个报告，看了文件说是12月16日招聘会，也不知道来的是些什么企业，唉，好消息是应该可以拿到学生时代第一个国家助学金，泪目。
 好好整吧，努力刷题，争取在1月前刷到666。
 persevere to last
 2021.12.03
 李红磊
 2021年12月3日19:29:18
 *
 */
public class t20211203 {

    //1005.k次取反后最大化的数组和
    public int largestSumAfterKNegations(int[] nums, int k) {
        int len = nums.length;
        int[] number = new int[201];
        for (int item : nums) number[item + 100]++;

        int i = 0;
        while (k > 0) {
            //寻找数组中最小元素
            while (number[i] == 0) i++;
            number[i]--;
            number[200 - i]++;
            if (i > 100) {
                i = 200 - i;//若原来的i大于100，则说明其为正数，反转后最小的数为它的负数
            }
            k--;
        }

        int sum = 0;
        for (int j = i; j < number.length; j++) {
            sum += (j - 100) * number[j];
        }
        return sum;
    }

    //42.接雨水
    public int trap(int[] height) {
        if (height == null || height.length < 3) return 0;
        int len = height.length;
        int sum = 0;
        for (int i = 1; i < len - 1; i++) {
            int max_left = 0;
            for (int j = i - 1; j >= 0; j--) {
                if (height[j] > max_left) max_left = height[j];
            }
            int max_right = 0;
            for (int j = i + 1; j < len; j++) {
                if (height[j] > max_right) max_right = height[j];
            }

            int min = Math.min(max_right, max_left);
            if (min > height[i]) sum += min - height[i];
        }
        return sum;
    }

    public static void main(String[] args) {
        t20211203 t20211203 = new t20211203();
        String str = "leetcode";

        System.out.println(str.startsWith("eet", 1));


    }
}
